This invention relates to network communication-routing systems.
A network communication-routing system, also referred to as a call router, controls the routing of incoming communications (e.g., calls) to a private (e.g., a company""s) network of customer care centers, also known as call centers. One of the principal objectives of a network call-routing system is to route each individual call to the call center in the network which presently offers the shortest call-answer waiting time, i.e., to distribute calls across all call centers evenly from the viewpoint of call-waiting time. In order to achieve this objective, the network call-routing system must obtain status information from each of the call centers in the network on a continuing basis.
There are two commonly-used schemes for sending status updates to a network call-routing system: periodic updates, and event-driven updates. But periodic updates of status are almost never timely. No matter how frequently the updates are sent, there is always a likelihood that a routing decision will use incorrect, out-of-date, status information. And while event-driven updates are much more timely, they require excessive bandwidth and processing time for large call-volume applications. For example: it is not uncommon for as many as 10 update-triggering events to occur per second in a single split on a single busy switch. Furthermore, there is always a delay between when an update is determined and sent at one end and received and used at the other end. Therefore, neither scheme is very efficient or effective in all call-center scenarios, and both have the problem of requiring excessive bandwidth or processing time to achieve an acceptable level of accuracy of routing decisions. Moreover, neither scheme has any way of dealing with a temporary loss of updating capability.
U.S. Pat. No. 5,926,538 discloses a method for managing loading of a plurality of call centers in a network wherein real-time loading information is not available during certain times for one or more of the call centers. The method involves updating a previous, known, status of a call center by using historical data and statistical modeling of call behavior to estimate or predict the present loading of the call center. This statistical method relies principally on knowing the numbers and status of agents, the average call-handling time, the time since the last update, and the numbers of answered and completed calls, for the call center whose status is to be estimated. The method is complex, requires a lot of information, and its accuracy is suspect.
This invention is directed to solving these and other problems and disadvantages of the art. Generally according to the invention, a plurality of work queues (e.g., call queues in a plurality of call centers) are managed as follows: For each work queue, an expected wait time (EWT) and an average advance time (AAT) are obtained, and the EWT is then decremented by the AAT upon each expiration of the AAT. Preferably, new (current) EWT and AAT for each work queue are obtained periodically. The EWT is never decremented to a negative value. A work item (e.g., a call received for processing) is caused to be enqueued in the one of the work queues that presently has the lowest EWT, and the EWT of that one work queue is incremented by its AAT. The current EWT of each work queue is thus advantageously estimated during the periods between obtaining the true EWT values in a straightforward and easy-to-implement manner. The technique is quite effective in estimating the true EWT, and therefore the true EWT does not have to be obtained relatively often. Hence, the polling rate can be reduced from seconds to tens of seconds or even minutes, yet still produce good results. Because polling need not be done frequently, the system can continue to operate well even when polling ability is lost for a period of time. The accuracy of the technique may advantageously be increased by adjusting the value of the EWT received from each work queue for effects of the network delay time. This is illustratively done by incrementing every received EWT by the product of the corresponding AAT and the number of work items that were enqueued in (sent to) the work queue since the work queue sent the just-received EWT and AAT.
While the invention has been characterized in terms of method, it also encompasses apparatus that performs the method. The apparatus preferably includes an effectorxe2x80x94any entity that effects the corresponding step, unlike a meansxe2x80x94for each step. The invention further encompasses any computer-readable medium containing instructions which, when executed in a computer, cause the computer to perform the method steps.